package cn.jsj.invite.service;

import cn.jsj.invite.aop.PrimaryKeyParam;
import cn.jsj.invite.aop.StringParam;
import cn.jsj.invite.pojo.UserEnt;
import cn.jsj.invite.pojo.identity.UserIdentityEnum;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotNull;

@Validated
public interface UserService {


    /**
     * 登录接口
     * <p>
     * 指定一种用户身份，根据用户类型校验账号和密码
     *
     * @param account      用户账号
     * @param userIdentity 用户身份类型标识
     * @param password     密码
     * @return 用户信息
     */
    UserEnt userLogin(@StringParam(message = "请输入正确的账号", minLength = 5, allowSpace = false) String account, @NotNull UserIdentityEnum userIdentity, String password);


    /**
     * Id获取用户信息
     *
     * @param id           用户Id
     * @param userIdentity 用户身份标识
     * @return 用户详细信息
     */
    UserEnt getUserDetailInfoById(@PrimaryKeyParam Long id, UserIdentityEnum userIdentity);


}
